﻿using Microsoft.Extensions.Configuration;
using MiniFox.Configurations;

namespace DingTalk.Corp.Auth.Configurations
{
    /// <summary>
    /// 
    /// </summary>
    [Section(ELEMENT_NAME)]
    public class DingTalkCorpAuthConfiguration : IDingTalkCorpAuthConfiguration
    {
        internal const string ELEMENT_NAME = "minifox:dingtalk:corp.auth";

        /// <summary>
        /// 
        /// </summary>
        [ConfigurationKeyName("openAuthUri")]
        public string OpenAuthUri
        {
            get;
            set;
        } = IDingTalkCorpAuthConfiguration.OPEN_AUTH_URI;
        /// <summary>
        /// 
        /// </summary>
        [ConfigurationKeyName("getUserIdUri")]
        public string GetUserIdUri
        {
            get;
            set;
        } = IDingTalkCorpAuthConfiguration.GET_USER_ID_URI;
        /// <summary>
        /// 
        /// </summary>
        [ConfigurationKeyName("qrAuthUri")]
        public string QrAuthUri
        {
            get;
            set;
        } = IDingTalkCorpAuthConfiguration.QR_AUTH_URI;
        /// <summary>
        /// 
        /// </summary>
        [ConfigurationKeyName("sessionUri")]
        public string SessionUri
        {
            get;
            set;
        } = IDingTalkCorpAuthConfiguration.SESSION_URI;
        /// <summary>
        /// 
        /// </summary>
        [ConfigurationKeyName("userInfoUri")]
        public string UserInfoUri
        {
            get;
            set;
        } = IDingTalkCorpAuthConfiguration.USER_INFO_URI;
        /// <summary>
        /// 
        /// </summary>
        [ConfigurationKeyName("userTokenUri")]
        public string UserTokenUri
        {
            get;
            set;
        } = IDingTalkCorpAuthConfiguration.USER_TOKEN_URI;
    }
}
